home *** CD-ROM | disk | FTP | other *** search
/ Netware Super Library / Netware Super Library.iso / remote / jservr / genjob.h < prev    next >
Encoding:
C/C++ Source or Header  |  1989-05-15  |  4.5 KB  |  142 lines

  1. /*****************************************************************************
  2.  *
  3.  * Filename:      genjob.h
  4.  *
  5.  * Date Created:  January 26, 1989
  6.  *
  7.  * Version:          1.0
  8.  *
  9.  * Programmers:      Tom Brough, Milt Anderson, Cliff Ross, Greg Peto
  10.  *
  11.  * Date Modified: 
  12.  *
  13.  * Modifications: 
  14.  *
  15.  * Comments:      Common header file for all generic job server utilities
  16.  *
  17.  ****************************************************************************/
  18.  
  19. #include <stdio.h>
  20. #include <nit.h>
  21. #include <nitq.h>
  22. #include <niterror.h>
  23. #include <dos.h>
  24. #include <io.h>
  25. #include <fcntl.h>
  26. #include <stdlib.h>
  27. #include "..\shrthnd.h"
  28.  
  29. /* constants definitions */
  30. #define    MAX_FSERVER_NAME        48
  31. #define    MAX_JQUEUE_NAME        48                /* max length of job queue name */
  32. #define    MAX_PATH                    255            /* max full path name length */
  33. #define    MAX_USER_NAME            48
  34. #define    MAX_PASSWORD            128            /* max length of password */
  35. #define    MAX_LOGICAL_DRIVES    32                /* max number of logical drives */
  36. #define    MAX_SEARCH_VECTORS    17                /* 16 plus marker at end */
  37. #define    NOT_SEARCH_MAPPED        0XFF            /* drive is not mapped to search */
  38. #define    MAX_SERVER_ATTACHES    8                /* max number of servers attached */
  39. #define    MAX_COMMAND                128            /* max length of command line to
  40.                                                             execute */
  41. #define    MAX_COM_KEY    20                            /* max length of command line
  42.                                                             keyword */
  43. #define    MAX_ENV_ENTRIES        100            /* max number of environment entries */
  44.  
  45. #define    ENV_ENTRY_SIZE            128            /* max length of string in entry */
  46. /* BUGS: how big should this be ? */
  47. #define    MAX_ARG_VAR    156                        /* max length of keyword string
  48.                                                             arg */
  49.  
  50. #define    JOB_QUEUE_NAME            "JS_QUEUE"    /* queue object name in bindiery */
  51. /* #define    OT_JOB_QUEUE            153            /* bindery object type for job queue */
  52.  
  53. #define    TARGET_TIME_BYTES    6                    /* number of bytes in job execute time */
  54. /* drive status flags as returned by GetDriveInformation() */
  55. #define    PERM_DIR_HANDLE    1
  56. #define    TEMP_DIR_HANDLE    2
  57. #define    MAPPED_TO_LOCAL    0x8
  58.  
  59. /* global variables and data types */
  60. typedef struct
  61. {
  62.     BYTE    hour;
  63.     BYTE    minute;
  64.     BYTE    second;
  65. } JOB_TIME;                                            /* time sub-field in job struct */
  66.  
  67. typedef struct
  68. {
  69.     BYTE    year;
  70.     BYTE    month;
  71.     BYTE    day;
  72. } JOB_DATE;                                            /* date sub-field in job struct */
  73.  
  74. typedef struct
  75. {
  76.     int        com_token;                            /* token constant for command */
  77.     char        *com_key;                            /* command key word, upper case */
  78.     int        num_sig;                                /* number of significant chars */
  79.     BOOLEAN    req_string;                            /* requires string parameter */
  80.     BOOLEAN    req_int;                                /* requires integer,time or date
  81.                                                                 parameter */
  82. } COMMAND_ARGS;                                    /* structure to store expected form
  83.                                                             of command line args */
  84.  
  85. #define    JOB_REC_V_NUMBER     1                    /* using job structure format #1 */
  86. typedef struct
  87. {
  88.     BYTE    isTemp;
  89.     BYTE    searchVector;
  90.     BYTE    fullPath[MAX_PATH];
  91. } MAPINFO;
  92.  
  93. typedef struct
  94. {
  95.     BYTE    serverName[MAX_FSERVER_NAME];
  96.     BYTE    userName[MAX_USER_NAME];            /* full login name of user */
  97.     BYTE    password[MAX_PASSWORD];                /* password for user */
  98.                                               /* current attached server(s)
  99.                                                                 info */
  100. } SERVERINFO;
  101.  
  102. typedef    struct
  103. {
  104.     char            v;                                    /* holds 'v'*/
  105.     char            period;                            /* holds '.' */
  106.     char            versionNumber;                    /* version number of job file
  107.                                                             format as character '0' + # */
  108.     char            jobCommand[MAX_COMMAND];    /* command line to execute */
  109. } CLIENT_REC_AREA;                                /* client record format for job */
  110.  
  111. /* flag values for JOBFILE flag element */
  112. #define    DO_ACK_MESS        01                        /* send acknowledge message peer to
  113.                                                             peer when job terminates */
  114.  
  115. typedef struct
  116. {
  117.     int            flags;                            /* flags set by submitting program */
  118.     BYTE            curDrive;                        /* current drive attached to */
  119.     unsigned BYTE svector[MAX_SEARCH_VECTORS];    /* search vector drive mappings
  120.                                                                 array */
  121.     char            envEntries[MAX_ENV_ENTRIES][ENV_ENTRY_SIZE];
  122.     int            numEntries;                        /* number entries in envEntries */
  123.    MAPINFO     mapInfo[MAX_LOGICAL_DRIVES];
  124.    SERVERINFO  serverInfo[MAX_SERVER_ATTACHES];
  125.     int            numServers;                    /* number of entries in serverInfor */
  126. } JOBFILE;                                            /* job file format */
  127.  
  128. /* functions and data in genjob.c */
  129. extern char        *jobQueueName;
  130. extern int        jobQueueType;
  131. extern BYTE        jobServerConID;
  132. extern long        jobQueueID;
  133.  
  134. extern void        GetArg(char *,char *,BOOLEAN *,char *,long *,
  135.                         JOB_TIME *,JOB_DATE *);
  136. extern void        FindJobServer(char [],BOOLEAN);
  137. extern long        CheckServerForQueue(WORD);
  138.  
  139. /* macro definitions */
  140. /*****************************************************************************/
  141.  
  142.